package ar.uba.fi.algo3.algoTank.model.estrategias;

import ar.uba.fi.algo3.algoTank.model.Vector;
import ar.uba.fi.algo3.algoTank.model.escenarios.Escenario;
import ar.uba.fi.algo3.algoTank.util.Constantes;

public class EstrategiaMovimientoBordes extends EstrategiaMovimiento {

	public Enum<Constantes.direccion> getSiguienteDireccion(Vector posActual, Vector posObjetivo) {

		Escenario escenario = Escenario.getInstancia();
		int ancho = Math.round(escenario.getAncho());
		float centro = Math.round((ancho) / 2);
		float posActualX = Math.round(posActual.getCoordX());
		float posActualY = Math.round(posActual.getCoordY());
		float posObjetivoY = Math.round(posObjetivo.getCoordY());

		if ((posActualX >= (ancho - (Constantes.VELOCIDAD_MAXIMA+20))) || (posActualX <= Constantes.VELOCIDAD_MAXIMA)) {
			if(posActualY >= posObjetivoY - Constantes.VELOCIDAD_MAXIMA)
				return getDireccionObjetivo(posActual, posObjetivo);
			else
				return Constantes.direccion.ABAJO; 

		}
		if (posActualX < centro){
			if(!(posActualY >= posObjetivoY - Constantes.VELOCIDAD_MAXIMA)){
				return Constantes.direccion.IZQUIERDA;
			}
			return Constantes.direccion.DERECHA;
		}
		if (posActualX >= centro){
			if(!(posActualY >= posObjetivoY - Constantes.VELOCIDAD_MAXIMA)){
				return Constantes.direccion.DERECHA;
			}
			return Constantes.direccion.IZQUIERDA;
		}
		return Constantes.direccion.DERECHA;
	}

}
